#pragma once
#include "../../utils/common_ptr.h"

class SQLASTVisitor
    // : virtual public std::enable_shared_from_this<SQLASTVisitor>
{
public:
  virtual ~SQLASTVisitor() {}
  // std::shared_ptr<SQLASTVisitor> GetSharedObject() { return shared_from_this(); }
  SHAREDOBJECT(SQLASTVisitor);

  string_ptr getClass()
  {
    static string_ptr className = make_string_ptr("SQLASTVisitor");
    return className;
  }

  void endVisit(SQLOver_ptr x) {}
  bool visit(SQLOver_ptr x) { return true; }

  virtual void endVisit(SQLForeignKeyImpl_ptr x) {}
  virtual bool visit(SQLForeignKeyImpl_ptr x) { return true; }

  virtual void endVisit(MySqlKillStatement_ptr x) {}
  virtual bool visit(MySqlKillStatement_ptr x) { return true; }

  virtual void endVisit(SQLAlterResourceGroupStatement_ptr x) {}
  virtual bool visit(SQLAlterResourceGroupStatement_ptr x) { return true; }

  virtual void endVisit(SQLCreateResourceGroupStatement_ptr x) {}
  virtual bool visit(SQLCreateResourceGroupStatement_ptr x) { return true; }

  virtual void endVisit(SQLListResourceGroupStatement_ptr x) {}
  virtual bool visit(SQLListResourceGroupStatement_ptr x) { return true; }

  virtual void endVisit(SQLAlterIndexStatement_Rebuild_ptr x) {}
  virtual bool visit(SQLAlterIndexStatement_Rebuild_ptr x) { return true; }

  virtual void endVisit(SQLAlterIndexStatement_ptr x) {}
  virtual bool visit(SQLAlterIndexStatement_ptr x) { return true; }

  virtual void endVisit(SQLAlterMaterializedViewStatement_ptr x) {}
  virtual bool visit(SQLAlterMaterializedViewStatement_ptr x) { return true; }

  virtual void endVisit(SQLAlterOutlineStatement_ptr x) {}
  virtual bool visit(SQLAlterOutlineStatement_ptr x) { return true; }

  virtual void endVisit(SQLAlterTableDropExtPartition_ptr x) {}
  virtual bool visit(SQLAlterTableDropExtPartition_ptr x) { return true; }

  virtual void endVisit(SQLAlterTableDropSubpartition_ptr x) {}
  virtual bool visit(SQLAlterTableDropSubpartition_ptr x) { return true; }

  virtual void endVisit(SQLAlterTableEnableKeys_ptr x) {}
  virtual bool visit(SQLAlterTableEnableKeys_ptr x) { return true; }

  virtual void endVisit(SQLAlterTableEnableLifecycle_ptr x) {}
  virtual bool visit(SQLAlterTableEnableLifecycle_ptr x) { return true; }

  virtual void endVisit(SQLAlterTableExchangePartition_ptr x) {}
  virtual bool visit(SQLAlterTableExchangePartition_ptr x) { return true; }

  virtual void endVisit(SQLAlterTableGroupStatement_ptr x) {}
  virtual bool visit(SQLAlterTableGroupStatement_ptr x) { return true; }

  virtual void endVisit(SQLAlterTableImportPartition_ptr x) {}
  virtual bool visit(SQLAlterTableImportPartition_ptr x) { return true; }

  virtual void endVisit(SQLAlterTableModifyClusteredBy_ptr x) {}
  virtual bool visit(SQLAlterTableModifyClusteredBy_ptr x) { return true; }

  virtual void endVisit(SQLAlterTableOptimizePartition_ptr x) {}
  virtual bool visit(SQLAlterTableOptimizePartition_ptr x) { return true; }

  virtual void endVisit(SQLAlterTablePartition_ptr x) {}
  virtual bool visit(SQLAlterTablePartition_ptr x) { return true; }

  virtual void endVisit(SQLAlterTablePartitionCount_ptr x) {}
  virtual bool visit(SQLAlterTablePartitionCount_ptr x) { return true; }

  virtual void endVisit(SQLAlterTablePartitionLifecycle_ptr x) {}
  virtual bool visit(SQLAlterTablePartitionLifecycle_ptr x) { return true; }

  virtual void endVisit(SQLAlterTablePartitionSetProperties_ptr x) {}
  virtual bool visit(SQLAlterTablePartitionSetProperties_ptr x) { return true; }

  virtual void endVisit(SQLAlterTableRebuildPartition_ptr x) {}
  virtual bool visit(SQLAlterTableRebuildPartition_ptr x) { return true; }

  virtual void endVisit(SQLAlterTableRecoverPartitions_ptr x) {}
  virtual bool visit(SQLAlterTableRecoverPartitions_ptr x) { return true; }

  virtual void endVisit(SQLAlterTableRename_ptr x) {}
  virtual bool visit(SQLAlterTableRename_ptr x) { return true; }

  virtual void endVisit(SQLAlterTableRenameConstraint_ptr x) {}
  virtual bool visit(SQLAlterTableRenameConstraint_ptr x) { return true; }

  virtual void endVisit(SQLAlterTableRenameIndex_ptr x) {}
  virtual bool visit(SQLAlterTableRenameIndex_ptr x) { return true; }

  virtual void endVisit(SQLAlterTableRenamePartition_ptr x) {}
  virtual bool visit(SQLAlterTableRenamePartition_ptr x) { return true; }

  virtual void endVisit(SQLAlterTableReOrganizePartition_ptr x) {}
  virtual bool visit(SQLAlterTableReOrganizePartition_ptr x) { return true; }

  virtual void endVisit(SQLAlterTableRepairPartition_ptr x) {}
  virtual bool visit(SQLAlterTableRepairPartition_ptr x) { return true; }

  virtual void endVisit(SQLAlterTableReplaceColumn_ptr x) {}
  virtual bool visit(SQLAlterTableReplaceColumn_ptr x) { return true; }

  virtual void endVisit(SQLAlterTableSetComment_ptr x) {}
  virtual bool visit(SQLAlterTableSetComment_ptr x) { return true; }

  virtual void endVisit(SQLAlterTableSetLifecycle_ptr x) {}
  virtual bool visit(SQLAlterTableSetLifecycle_ptr x) { return true; }

  virtual void endVisit(SQLAlterTableSetLocation_ptr x) {}
  virtual bool visit(SQLAlterTableSetLocation_ptr x) { return true; }

  virtual void endVisit(SQLAlterTableSetOption_ptr x) {}
  virtual bool visit(SQLAlterTableSetOption_ptr x) { return true; }

  virtual void endVisit(SQLAlterTableSubpartitionAvailablePartitionNum_ptr x) {}
  virtual bool visit(SQLAlterTableSubpartitionAvailablePartitionNum_ptr x) { return true; }

  virtual void endVisit(SQLAlterTableSubpartitionLifecycle_ptr x) {}
  virtual bool visit(SQLAlterTableSubpartitionLifecycle_ptr x) { return true; }

  virtual void endVisit(SQLAlterTableTruncatePartition_ptr x) {}
  virtual bool visit(SQLAlterTableTruncatePartition_ptr x) { return true; }

  virtual void endVisit(SQLAlterTableTouch_ptr x) {}
  virtual bool visit(SQLAlterTableTouch_ptr x) { return true; }

  virtual void endVisit(SQLAlterTableUnarchivePartition_ptr x) {}
  virtual bool visit(SQLAlterTableUnarchivePartition_ptr x) { return true; }

  virtual void endVisit(SQLAlterTypeStatement_ptr x) {}
  virtual bool visit(SQLAlterTypeStatement_ptr x) { return true; }

  virtual void endVisit(SQLAlterViewRenameStatement_ptr x) {}
  virtual bool visit(SQLAlterViewRenameStatement_ptr x) { return true; }

  virtual void endVisit(SQLAlterViewStatement_ptr x) {}
  virtual bool visit(SQLAlterViewStatement_ptr x) { return true; }

  virtual void endVisit(SQLAnalyzeTableStatement_ptr x) {}
  virtual bool visit(SQLAnalyzeTableStatement_ptr x) { return true; }

  virtual void endVisit(SQLArchiveTableStatement_ptr x) {}
  virtual bool visit(SQLArchiveTableStatement_ptr x) { return true; }

  virtual void endVisit(SQLBackupStatement_ptr x) {}
  virtual bool visit(SQLBackupStatement_ptr x) { return true; }

  virtual void endVisit(SQLBeginStatement_ptr x) {}
  virtual bool visit(SQLBeginStatement_ptr x) { return true; }

  virtual void endVisit(SQLBuildTableStatement_ptr x) {}
  virtual bool visit(SQLBuildTableStatement_ptr x) { return true; }

  virtual void endVisit(SQLCancelJobStatement_ptr x) {}
  virtual bool visit(SQLCancelJobStatement_ptr x) { return true; }

  virtual void endVisit(SQLCloneTableStatement_ptr x) {}
  virtual bool visit(SQLCloneTableStatement_ptr x) { return true; }

  virtual void endVisit(SQLCloseStatement_ptr x) {}
  virtual bool visit(SQLCloseStatement_ptr x) { return true; }

  virtual void endVisit(SQLCopyFromStatement_ptr x) {}
  virtual bool visit(SQLCopyFromStatement_ptr x) { return true; }

  virtual void endVisit(SQLCostStatement_ptr x) {}
  virtual bool visit(SQLCostStatement_ptr x) { return true; }

  virtual void endVisit(SQLCreateMaterializedViewStatement_ptr x) {}
  virtual bool visit(SQLCreateMaterializedViewStatement_ptr x) { return true; }

  virtual void endVisit(SQLCreateOutlineStatement_ptr x) {}
  virtual bool visit(SQLCreateOutlineStatement_ptr x) { return true; }

  virtual void endVisit(SQLCreateRoleStatement_ptr x) {}
  virtual bool visit(SQLCreateRoleStatement_ptr x) { return true; }

  virtual void endVisit(SQLCreateTableGroupStatement_ptr x) {}
  virtual bool visit(SQLCreateTableGroupStatement_ptr x) { return true; }

  virtual void endVisit(SQLCreateUserStatement_ptr x) {}
  virtual bool visit(SQLCreateUserStatement_ptr x) { return true; }

  virtual void endVisit(SQLCreateViewStatement_Column_ptr x) {}
  virtual bool visit(SQLCreateViewStatement_Column_ptr x) { return true; }

  virtual void endVisit(SQLDefault_ptr x) {}
  virtual bool visit(SQLDefault_ptr x) { return true; }

  virtual void endVisit(SQLDescribeStatement_ptr x) {}
  virtual bool visit(SQLDescribeStatement_ptr x) { return true; }

  virtual void endVisit(SQLDropSynonymStatement_ptr x) {}
  virtual bool visit(SQLDropSynonymStatement_ptr x) { return true; }

  virtual void endVisit(SQLDropTypeStatement_ptr x) {}
  virtual bool visit(SQLDropTypeStatement_ptr x) { return true; }

  virtual void endVisit(SQLDumpStatement_ptr x) {}
  virtual bool visit(SQLDumpStatement_ptr x) { return true; }

  virtual void endVisit(SQLExplainAnalyzeStatement_ptr x) {}
  virtual bool visit(SQLExplainAnalyzeStatement_ptr x) { return true; }

  virtual void endVisit(SQLExportDatabaseStatement_ptr x) {}
  virtual bool visit(SQLExportDatabaseStatement_ptr x) { return true; }

  virtual void endVisit(SQLExportTableStatement_ptr x) {}
  virtual bool visit(SQLExportTableStatement_ptr x) { return true; }

  virtual void endVisit(SQLExprStatement_ptr x) {}
  virtual bool visit(SQLExprStatement_ptr x) { return true; }

  virtual void endVisit(SQLFetchStatement_ptr x) {}
  virtual bool visit(SQLFetchStatement_ptr x) { return true; }

  virtual void endVisit(SQLForStatement_ptr x) {}
  virtual bool visit(SQLForStatement_ptr x) { return true; }

  virtual void endVisit(SQLIfStatement_ptr x) {}
  virtual bool visit(SQLIfStatement_ptr x) { return true; }

  virtual void endVisit(SQLIfStatement_Else_ptr x) {}
  virtual bool visit(SQLIfStatement_Else_ptr x) { return true; }

  virtual void endVisit(SQLIfStatement_ElseIf_ptr x) {}
  virtual bool visit(SQLIfStatement_ElseIf_ptr x) { return true; }

  virtual void endVisit(SQLImportDatabaseStatement_ptr x) {}
  virtual bool visit(SQLImportDatabaseStatement_ptr x) { return true; }

  virtual void endVisit(SQLImportTableStatement_ptr x) {}
  virtual bool visit(SQLImportTableStatement_ptr x) { return true; }

  virtual void endVisit(SQLNullConstraint_ptr x) {}
  virtual bool visit(SQLNullConstraint_ptr x) { return true; }

  virtual void endVisit(SQLOpenStatement_ptr x) {}
  virtual bool visit(SQLOpenStatement_ptr x) { return true; }

  virtual void endVisit(SQLOptimizeStatement_ptr x) {}
  virtual bool visit(SQLOptimizeStatement_ptr x) { return true; }

  virtual void endVisit(SQLPartitionRef_Item_ptr x) {}
  virtual bool visit(SQLPartitionRef_Item_ptr x) { return true; }

  virtual void endVisit(SQLPartitionRef_ptr x) {}
  virtual bool visit(SQLPartitionRef_ptr x) { return true; }

  virtual void endVisit(SQLPurgeLogsStatement_ptr x) {}
  virtual bool visit(SQLPurgeLogsStatement_ptr x) { return true; }

  virtual void endVisit(SQLPurgeRecyclebinStatement_ptr x) {}
  virtual bool visit(SQLPurgeRecyclebinStatement_ptr x) { return true; }

  virtual void endVisit(SQLPurgeTableStatement_ptr x) {}
  virtual bool visit(SQLPurgeTableStatement_ptr x) { return true; }

  virtual void endVisit(SQLPurgeTemporaryOutputStatement_ptr x) {}
  virtual bool visit(SQLPurgeTemporaryOutputStatement_ptr x) { return true; }

  virtual void endVisit(SQLRefreshMaterializedViewStatement_ptr x) {}
  virtual bool visit(SQLRefreshMaterializedViewStatement_ptr x) { return true; }

  virtual void endVisit(SQLRenameUserStatement_ptr x) {}
  virtual bool visit(SQLRenameUserStatement_ptr x) { return true; }

  virtual void endVisit(SQLReplaceStatement_ptr x) {}
  virtual bool visit(SQLReplaceStatement_ptr x) { return true; }

  virtual void endVisit(SQLRestoreStatement_ptr x) {}
  virtual bool visit(SQLRestoreStatement_ptr x) { return true; }

  virtual void endVisit(SQLReturnStatement_ptr x) {}
  virtual bool visit(SQLReturnStatement_ptr x) { return true; }

  virtual void endVisit(SQLScriptCommitStatement_ptr x) {}
  virtual bool visit(SQLScriptCommitStatement_ptr x) { return true; }

  virtual void endVisit(SQLShowACLStatement_ptr x) {}
  virtual bool visit(SQLShowACLStatement_ptr x) { return true; }

  virtual void endVisit(SQLShowCatalogsStatement_ptr x) {}
  virtual bool visit(SQLShowCatalogsStatement_ptr x) { return true; }

  virtual void endVisit(SQLShowCreateMaterializedViewStatement_ptr x) {}
  virtual bool visit(SQLShowCreateMaterializedViewStatement_ptr x) { return true; }

  virtual void endVisit(SQLShowCreateViewStatement_ptr x) {}
  virtual bool visit(SQLShowCreateViewStatement_ptr x) { return true; }

  virtual void endVisit(SQLShowDatabasesStatement_ptr x) {}
  virtual bool visit(SQLShowDatabasesStatement_ptr x) { return true; }

  virtual void endVisit(SQLShowErrorsStatement_ptr x) {}
  virtual bool visit(SQLShowErrorsStatement_ptr x) { return true; }

  virtual void endVisit(SQLShowFunctionsStatement_ptr x) {}
  virtual bool visit(SQLShowFunctionsStatement_ptr x) { return true; }

  virtual void endVisit(SQLShowGrantsStatement_ptr x) {}
  virtual bool visit(SQLShowGrantsStatement_ptr x) { return true; }

  virtual void endVisit(SQLShowHistoryStatement_ptr x) {}
  virtual bool visit(SQLShowHistoryStatement_ptr x) { return true; }

  virtual void endVisit(SQLShowIndexesStatement_ptr x) {}
  virtual bool visit(SQLShowIndexesStatement_ptr x) { return true; }

  virtual void endVisit(SQLShowMaterializedViewStatement_ptr x) {}
  virtual bool visit(SQLShowMaterializedViewStatement_ptr x) { return true; }

  virtual void endVisit(SQLShowOutlinesStatement_ptr x) {}
  virtual bool visit(SQLShowOutlinesStatement_ptr x) { return true; }

  virtual void endVisit(SQLShowPackagesStatement_ptr x) {}
  virtual bool visit(SQLShowPackagesStatement_ptr x) { return true; }

  virtual void endVisit(SQLShowPartitionsStmt_ptr x) {}
  virtual bool visit(SQLShowPartitionsStmt_ptr x) { return true; }

  virtual void endVisit(SQLShowProcessListStatement_ptr x) {}
  virtual bool visit(SQLShowProcessListStatement_ptr x) { return true; }

  virtual void endVisit(SQLShowQueryTaskStatement_ptr x) {}
  virtual bool visit(SQLShowQueryTaskStatement_ptr x) { return true; }

  virtual void endVisit(SQLShowRecylebinStatement_ptr x) {}
  virtual bool visit(SQLShowRecylebinStatement_ptr x) { return true; }

  virtual void endVisit(SQLShowRolesStatement_ptr x) {}
  virtual bool visit(SQLShowRolesStatement_ptr x) { return true; }

  virtual void endVisit(SQLShowRoleStatement_ptr x) {}
  virtual bool visit(SQLShowRoleStatement_ptr x) { return true; }

  virtual void endVisit(SQLShowSessionStatement_ptr x) {}
  virtual bool visit(SQLShowSessionStatement_ptr x) { return true; }

  virtual void endVisit(SQLShowStatisticListStmt_ptr x) {}
  virtual bool visit(SQLShowStatisticListStmt_ptr x) { return true; }

  virtual void endVisit(SQLShowStatisticStmt_ptr x) {}
  virtual bool visit(SQLShowStatisticStmt_ptr x) { return true; }

  virtual void endVisit(SQLShowTableGroupsStatement_ptr x) {}
  virtual bool visit(SQLShowTableGroupsStatement_ptr x) { return true; }

  virtual void endVisit(SQLShowUsersStatement_ptr x) {}
  virtual bool visit(SQLShowUsersStatement_ptr x) { return true; }

  virtual void endVisit(SQLShowVariantsStatement_ptr x) {}
  virtual bool visit(SQLShowVariantsStatement_ptr x) { return true; }

  virtual void endVisit(SQLShowViewsStatement_ptr x) {}
  virtual bool visit(SQLShowViewsStatement_ptr x) { return true; }

  virtual void endVisit(SQLStartTransactionStatement_ptr x) {}
  virtual bool visit(SQLStartTransactionStatement_ptr x) { return true; }

  virtual void endVisit(SQLSubmitJobStatement_ptr x) {}
  virtual bool visit(SQLSubmitJobStatement_ptr x) { return true; }

  virtual void endVisit(SQLSyncMetaStatement_ptr x) {}
  virtual bool visit(SQLSyncMetaStatement_ptr x) { return true; }

  virtual void endVisit(SQLWhoamiStatement_ptr x) {}
  virtual bool visit(SQLWhoamiStatement_ptr x) { return true; }

  virtual void endVisit(SQLAlterFunctionStatement_ptr x) {}
  virtual bool visit(SQLAlterFunctionStatement_ptr x) { return true; }

  virtual void endVisit(SQLZOrderBy_ptr x) {}
  virtual bool visit(SQLZOrderBy_ptr x) { return true; }

  virtual void endVisit(SQLSubPartitionByList_ptr x) {}
  virtual bool visit(SQLSubPartitionByList_ptr x) { return true; }

  virtual void endVisit(SQLRowDataType_ptr x) {}
  virtual bool visit(SQLRowDataType_ptr x) { return true; }

  virtual void endVisit(SQLStructDataType_Field_ptr x) {}
  virtual bool visit(SQLStructDataType_Field_ptr x) { return true; }

  virtual void endVisit(SQLStructDataType_ptr x) {}
  virtual bool visit(SQLStructDataType_ptr x) { return true; }

  virtual void endVisit(SQLRecordDataType_ptr x) {}
  virtual bool visit(SQLRecordDataType_ptr x) { return true; }

  virtual void endVisit(SQLPartitionSpec_ptr x) {}
  virtual bool visit(SQLPartitionSpec_ptr x) { return true; }

  virtual void endVisit(SQLPartitionSpec_Item_ptr x) {}
  virtual bool visit(SQLPartitionSpec_Item_ptr x) { return true; }

  virtual void endVisit(SQLMapDataType_ptr x) {}
  virtual bool visit(SQLMapDataType_ptr x) { return true; }

  virtual void endVisit(SQLKeep_ptr x) {}
  virtual bool visit(SQLKeep_ptr x) { return true; }

  virtual void endVisit(SQLDataTypeRefExpr_ptr x) {}
  virtual bool visit(SQLDataTypeRefExpr_ptr x) { return true; }

  virtual void endVisit(SQLCreateFunctionStatement_ptr x) {}
  virtual bool visit(SQLCreateFunctionStatement_ptr x) { return true; }

  virtual void endVisit(SQLMergeStatement_MergeUpdateClause_ptr x) {}
  virtual bool visit(SQLMergeStatement_MergeUpdateClause_ptr x) { return true; }

  virtual void endVisit(SQLErrorLoggingClause_ptr x) {}
  virtual bool visit(SQLErrorLoggingClause_ptr x) { return true; }

  virtual void endVisit(SQLMergeStatement_MergeInsertClause_ptr x) {}
  virtual bool visit(SQLMergeStatement_MergeInsertClause_ptr x) { return true; }

  virtual void endVisit(SQLMergeStatement_ptr x) {}
  virtual bool visit(SQLMergeStatement_ptr x) { return true; }

  virtual void endVisit(SQLCreateProcedureStatement_ptr x) {}
  virtual bool visit(SQLCreateProcedureStatement_ptr x) { return true; }

  virtual void endVisit(SQLShowTablesStatement_ptr x) {}
  virtual bool visit(SQLShowTablesStatement_ptr x) { return true; }

  virtual void endVisit(SQLShowCreateTableStatement_ptr x) {}
  virtual bool visit(SQLShowCreateTableStatement_ptr x) { return true; }

  virtual void endVisit(SQLCreateSequenceStatement_ptr x) {}
  virtual bool visit(SQLCreateSequenceStatement_ptr x) { return true; }

  virtual void endVisit(SQLCommitStatement_ptr x) {}
  virtual bool visit(SQLCommitStatement_ptr x) { return true; }

  virtual void endVisit(SQLBlockStatement_ptr x) {}
  virtual bool visit(SQLBlockStatement_ptr x) { return true; }

  virtual void endVisit(SQLWhileStatement_ptr x) {}
  virtual bool visit(SQLWhileStatement_ptr x) { return true; }

  virtual void endVisit(SQLLoopStatement_ptr x) {}
  virtual bool visit(SQLLoopStatement_ptr x) { return true; }

  virtual void endVisit(SQLLateralViewTableSource_ptr x) {}
  virtual bool visit(SQLLateralViewTableSource_ptr x) { return true; }

  virtual void endVisit(SQLUnnestTableSource_ptr x) {}
  virtual bool visit(SQLUnnestTableSource_ptr x) { return true; }

  virtual void endVisit(SQLExternalRecordFormat_ptr x) {}
  virtual bool visit(SQLExternalRecordFormat_ptr x) { return true; }

  virtual void endVisit(HiveInputOutputFormat_ptr x) {}
  virtual bool visit(HiveInputOutputFormat_ptr x) { return true; }

  virtual void endVisit(SQLCurrentUserExpr_ptr x) {}
  virtual bool visit(SQLCurrentUserExpr_ptr x) { return true; }

  virtual void endVisit(SQLValuesTableSource_ptr x) {}
  virtual bool visit(SQLValuesTableSource_ptr x) { return true; }

  virtual void endVisit(SQLArgument_ptr x) {}
  virtual bool visit(SQLArgument_ptr x) { return true; }

  virtual void endVisit(SQLParameter_ptr x) {}
  virtual bool visit(SQLParameter_ptr x) { return true; }

  virtual void endVisit(SQLAlterDatabaseStatement_ptr x) {}
  virtual bool visit(SQLAlterDatabaseStatement_ptr x) { return true; }

  virtual void endVisit(SQLValuesExpr_ptr x) {}
  virtual bool visit(SQLValuesExpr_ptr x) { return true; }

  virtual void endVisit(SQLTinyIntExpr_ptr x) {}
  virtual bool visit(SQLTinyIntExpr_ptr x) { return true; }

  virtual void endVisit(SQLTimestampExpr_ptr x) {}
  virtual bool visit(SQLTimestampExpr_ptr x) { return true; }

  virtual void endVisit(SQLTimeExpr_ptr x) {}
  virtual bool visit(SQLTimeExpr_ptr x) { return true; }

  virtual void endVisit(SQLSmallIntExpr_ptr x) {}
  virtual bool visit(SQLSmallIntExpr_ptr x) { return true; }

  virtual void endVisit(SQLSizeExpr_ptr x) {}
  virtual bool visit(SQLSizeExpr_ptr x) { return true; }

  virtual void endVisit(SQLSequenceExpr_ptr x) {}
  virtual bool visit(SQLSequenceExpr_ptr x) { return true; }

  virtual void endVisit(SQLRealExpr_ptr x) {}
  virtual bool visit(SQLRealExpr_ptr x) { return true; }

  virtual void endVisit(SQLMatchAgainstExpr_ptr x) {}
  virtual bool visit(SQLMatchAgainstExpr_ptr x) { return true; }

  virtual void endVisit(SQLJSONExpr_ptr x) {}
  virtual bool visit(SQLJSONExpr_ptr x) { return true; }

  virtual void endVisit(SQLIntervalExpr_ptr x) {}
  virtual bool visit(SQLIntervalExpr_ptr x) { return true; }

  virtual void endVisit(SQLGroupingSetExpr_ptr x) {}
  virtual bool visit(SQLGroupingSetExpr_ptr x) { return true; }

  virtual void endVisit(SQLFloatExpr_ptr x) {}
  virtual bool visit(SQLFloatExpr_ptr x) { return true; }

  virtual void endVisit(SQLFlashbackExpr_ptr x) {}
  virtual bool visit(SQLFlashbackExpr_ptr x) { return true; }

  virtual void endVisit(SQLExtractExpr_ptr x) {}
  virtual bool visit(SQLExtractExpr_ptr x) { return true; }

  virtual void endVisit(SQLDecimalExpr_ptr x) {}
  virtual bool visit(SQLDecimalExpr_ptr x) { return true; }

  virtual void endVisit(SQLDoubleExpr_ptr x) {}
  virtual bool visit(SQLDoubleExpr_ptr x) { return true; }

  virtual void endVisit(SQLDbLinkExpr_ptr x) {}
  virtual bool visit(SQLDbLinkExpr_ptr x) { return true; }

  virtual void endVisit(SQLDateTimeExpr_ptr x) {}
  virtual bool visit(SQLDateTimeExpr_ptr x) { return true; }

  virtual void endVisit(SQLDateExpr_ptr x) {}
  virtual bool visit(SQLDateExpr_ptr x) { return true; }

  virtual void endVisit(SQLContainsExpr_ptr x) {}
  virtual bool visit(SQLContainsExpr_ptr x) { return true; }

  virtual void endVisit(SQLCaseStatement_ptr x) {}
  virtual bool visit(SQLCaseStatement_ptr x) { return true; }

  virtual void endVisit(SQLCaseStatement_Item_ptr x) {}
  virtual bool visit(SQLCaseStatement_Item_ptr x) { return true; }

  virtual void endVisit(SQLBinaryExpr_ptr x) {}
  virtual bool visit(SQLBinaryExpr_ptr x) { return true; }

  virtual void endVisit(SQLBigIntExpr_ptr x) {}
  virtual bool visit(SQLBigIntExpr_ptr x) { return true; }

  virtual void endVisit(SQLArrayExpr_ptr x) {}
  virtual bool visit(SQLArrayExpr_ptr x) { return true; }

  virtual void endVisit(SQLBinaryOpExprGroup_ptr x) {}
  virtual bool visit(SQLBinaryOpExprGroup_ptr x) { return true; }

  virtual void endVisit(SQLAdhocTableSource_ptr x) {}
  virtual bool visit(SQLAdhocTableSource_ptr x) { return true; }

  virtual void endVisit(SQLUnpivot_ptr x) {}
  virtual bool visit(SQLUnpivot_ptr x) { return true; }

  virtual void endVisit(SQLPivot_ptr x) {}
  virtual bool visit(SQLPivot_ptr x) { return true; }

  virtual void endVisit(SQLJoinTableSource_UDJ_ptr x) {}
  virtual bool visit(SQLJoinTableSource_UDJ_ptr x) { return true; }

  virtual void endVisit(SQLSubPartitionByRange_ptr x) {}
  virtual bool visit(SQLSubPartitionByRange_ptr x) { return true; }

  virtual void endVisit(SQLSubPartitionByHash_ptr x) {}
  virtual bool visit(SQLSubPartitionByHash_ptr x) { return true; }

  virtual void endVisit(SQLPartitionByList_ptr x) {}
  virtual bool visit(SQLPartitionByList_ptr x) { return true; }

  virtual void endVisit(SQLPartitionByValue_ptr x) {}
  virtual bool visit(SQLPartitionByValue_ptr x) { return true; }

  virtual void endVisit(SQLPartitionByHash_ptr x) {}
  virtual bool visit(SQLPartitionByHash_ptr x) { return true; }

  virtual void endVisit(SQLPartitionByRange_ptr x) {}
  virtual bool visit(SQLPartitionByRange_ptr x) { return true; }

  virtual void endVisit(SQLTableLike_ptr x) {}
  virtual bool visit(SQLTableLike_ptr x) { return true; }

  virtual void endVisit(SQLAnnIndex_ptr x) {}
  virtual bool visit(SQLAnnIndex_ptr x) { return true; }

  virtual void endVisit(SQLBooleanExpr_ptr x) {}
  virtual bool visit(SQLBooleanExpr_ptr x) { return true; }

  virtual void endVisit(SQLNotNullConstraint_ptr x) {}
  virtual bool visit(SQLNotNullConstraint_ptr x) { return true; }

  virtual void endVisit(SQLAlterCharacter_ptr x) {}
  virtual bool visit(SQLAlterCharacter_ptr x) { return true; }

  virtual void endVisit(SQLPartition_ptr x) {}
  virtual bool visit(SQLPartition_ptr x) { return true; }

  virtual void endVisit(SQLSubPartition_ptr x) {}
  virtual bool visit(SQLSubPartition_ptr x) { return true; }

  virtual void endVisit(SQLPartitionValue_ptr x) {}
  virtual bool visit(SQLPartitionValue_ptr x) { return true; }

  virtual void endVisit(SQLTableSampling_ptr x) {}
  virtual bool visit(SQLTableSampling_ptr x) { return true; }

  virtual void endVisit(SQLUnionQueryTableSource_ptr x) {}
  virtual bool visit(SQLUnionQueryTableSource_ptr x) { return true; }

  virtual void endVisit(SQLLimit_ptr x) {}
  virtual bool visit(SQLLimit_ptr x) { return true; }

  virtual void endVisit(SQLIndexOptions_ptr x) {}
  virtual bool visit(SQLIndexOptions_ptr x) { return true; }

  virtual void endVisit(SQLIndexDefinition_ptr x) {}
  virtual bool visit(SQLIndexDefinition_ptr x) { return true; }

  virtual void endVisit(SQLShowColumnsStatement_ptr x) {}
  virtual bool visit(SQLShowColumnsStatement_ptr x) { return true; }

  virtual void endVisit(SQLCurrentTimeExpr_ptr x) {}
  virtual bool visit(SQLCurrentTimeExpr_ptr x) { return true; }

  virtual void endVisit(SQLRollbackStatement_ptr x) {}
  virtual bool visit(SQLRollbackStatement_ptr x) { return true; }

  virtual void endVisit(SQLPrivilegeItem_ptr x) {}
  virtual bool visit(SQLPrivilegeItem_ptr x) { return true; }

  virtual void endVisit(SQLRevokeStatement_ptr x) {}
  virtual bool visit(SQLRevokeStatement_ptr x) { return true; }

  virtual void endVisit(SQLDropRoleStatement_ptr x) {}
  virtual bool visit(SQLDropRoleStatement_ptr x) { return true; }

  virtual void endVisit(SQLDropOfflineModelStatement_ptr x) {}
  virtual bool visit(SQLDropOfflineModelStatement_ptr x) { return true; }

  virtual void endVisit(SQLDropMaterializedViewStatement_ptr x) {}
  virtual bool visit(SQLDropMaterializedViewStatement_ptr x) { return true; }

  virtual void endVisit(SQLDropCatalogStatement_ptr x) {}
  virtual bool visit(SQLDropCatalogStatement_ptr x) { return true; }

  virtual void endVisit(SQLDropOutlineStatement_ptr x) {}
  virtual bool visit(SQLDropOutlineStatement_ptr x) { return true; }

  virtual void endVisit(SQLDropTableGroupStatement_ptr x) {}
  virtual bool visit(SQLDropTableGroupStatement_ptr x) { return true; }

  virtual void endVisit(SQLDropServerStatement_ptr x) {}
  virtual bool visit(SQLDropServerStatement_ptr x) { return true; }

  virtual void endVisit(SQLDropLogFileGroupStatement_ptr x) {}
  virtual bool visit(SQLDropLogFileGroupStatement_ptr x) { return true; }

  virtual void endVisit(SQLDropResourceGroupStatement_ptr x) {}
  virtual bool visit(SQLDropResourceGroupStatement_ptr x) { return true; }

  virtual void endVisit(SQLDropResourceStatement_ptr x) {}
  virtual bool visit(SQLDropResourceStatement_ptr x) { return true; }

  virtual void endVisit(SQLDropEventStatement_ptr x) {}
  virtual bool visit(SQLDropEventStatement_ptr x) { return true; }

  virtual void endVisit(SQLWindow_ptr x) {}
  virtual bool visit(SQLWindow_ptr x) { return true; }

  virtual void endVisit(SQLValuesQuery_ptr x) {}
  virtual bool visit(SQLValuesQuery_ptr x) { return true; }

  virtual void endVisit(SQLInListExpr_ptr x) {}
  virtual bool visit(SQLInListExpr_ptr x) { return true; }

  virtual bool visit(SQLNCharExpr_ptr x) { return true; }
  virtual void endVisit(SQLNCharExpr_ptr x) {}

  virtual void postVisit(SQLObject_ptr astNode) {}
  virtual void preVisit(SQLObject_ptr astNode) {}

  virtual bool visit(SQLAllColumnExpr_ptr x) { return true; }
  virtual void endVisit(SQLAllColumnExpr_ptr x) {}

  virtual bool visit(SQLBetweenExpr_ptr x) { return true; }
  virtual void endVisit(SQLBetweenExpr_ptr x) {}

  virtual bool visit(SQLBinaryOpExpr_ptr x) { return true; }
  virtual void endVisit(SQLBinaryOpExpr_ptr x) {}

  virtual bool visit(SQLCaseExpr_ptr x) { return true; }
  virtual void endVisit(SQLCaseExpr_ptr x) {}

  virtual bool visit(SQLCaseExpr_Item_ptr x) { return true; }
  virtual void endVisit(SQLCaseExpr_Item_ptr x) {}

  virtual bool visit(SQLCharExpr_ptr x) { return true; }
  virtual void endVisit(SQLCharExpr_ptr x) {}

  virtual bool visit(SQLExistsExpr_ptr x) { return true; }
  virtual void endVisit(SQLExistsExpr_ptr x) {}

  virtual bool visit(SQLIdentifierExpr_ptr x) { return true; }
  virtual void endVisit(SQLIdentifierExpr_ptr x) {}

  virtual bool visit(SQLIntegerExpr_ptr x) { return true; }
  virtual void endVisit(SQLIntegerExpr_ptr x) {}

  virtual bool visit(SQLNotExpr_ptr x) { return true; }
  virtual void endVisit(SQLNotExpr_ptr x) {}

  virtual bool visit(SQLNullExpr_ptr x) { return true; }
  virtual void endVisit(SQLNullExpr_ptr x) {}

  virtual bool visit(SQLNumberExpr_ptr x) { return true; }
  virtual void endVisit(SQLNumberExpr_ptr x) {}

  virtual bool visit(SQLPropertyExpr_ptr x) { return true; }
  virtual void endVisit(SQLPropertyExpr_ptr x) {}

  virtual bool visit(SQLSelectGroupByClause_ptr x) { return true; }
  virtual void endVisit(SQLSelectGroupByClause_ptr x) {}

  virtual bool visit(SQLSelectItem_ptr x) { return true; }
  virtual void endVisit(SQLSelectItem_ptr x) {}

  virtual bool visit(SQLCastExpr_ptr x) { return true; }
  virtual void endVisit(SQLCastExpr_ptr x) {}

  virtual bool visit(SQLSelectStatement_ptr astNode) { return true; }
  virtual void endVisit(SQLSelectStatement_ptr selectStatement) {}

  virtual void endVisit(SQLAggregateExpr_ptr astNode) {}
  virtual bool visit(SQLAggregateExpr_ptr astNode) { return true; }

  virtual bool visit(SQLVariantRefExpr_ptr x) { return true; }
  virtual void endVisit(SQLVariantRefExpr_ptr x) {}

  virtual bool visit(SQLQueryExpr_ptr x) { return true; }
  virtual void endVisit(SQLQueryExpr_ptr x) {}

  virtual bool visit(SQLUnaryExpr_ptr x) { return true; }
  virtual void endVisit(SQLUnaryExpr_ptr x) {}

  virtual bool visit(SQLHexExpr_ptr x) { return true; }
  virtual void endVisit(SQLHexExpr_ptr x) {}

  virtual bool visit(SQLSelect_ptr x) { return true; }
  virtual void endVisit(SQLSelect_ptr select) {}

  virtual bool visit(SQLSelectQueryBlock_ptr x) { return true; };
  virtual void endVisit(SQLSelectQueryBlock_ptr x){};

  virtual bool visit(SQLExprTableSource_ptr x) { return true; }
  virtual void endVisit(SQLExprTableSource_ptr x) {}

  virtual bool visit(SQLOrderBy_ptr x) { return true; }
  virtual void endVisit(SQLOrderBy_ptr x) {}

  virtual bool visit(SQLSelectOrderByItem_ptr x) { return true; }
  virtual void endVisit(SQLSelectOrderByItem_ptr x) {}

  virtual bool visit(SQLDropTableStatement_ptr x) { return true; };
  virtual void endVisit(SQLDropTableStatement_ptr x){};

  virtual bool visit(SQLCreateTableStatement_ptr x) { return true; };
  virtual void endVisit(SQLCreateTableStatement_ptr x) {}

  virtual bool visit(SQLColumnDefinition_ptr x) { return true; }
  virtual void endVisit(SQLColumnDefinition_ptr x) {}

  virtual bool visit(Identity_ptr x) { return true; }
  virtual void endVisit(Identity_ptr x) {}

  virtual bool visit(SQLDataType_ptr x) { return true; }
  virtual void endVisit(SQLDataType_ptr x) {}

  virtual bool visit(SQLCharacterDataType_ptr x) { return true; }
  virtual void endVisit(SQLCharacterDataType_ptr x) {}

  virtual bool visit(SQLDeleteStatement_ptr x) { return true; };
  virtual void endVisit(SQLDeleteStatement_ptr x){};

  virtual bool visit(SQLCurrentOfCursorExpr_ptr x) { return true; }
  virtual void endVisit(SQLCurrentOfCursorExpr_ptr x) {}

  virtual bool visit(SQLInsertStatement_ptr x) { return true; };
  virtual void endVisit(SQLInsertStatement_ptr x){};

  virtual bool visit(SQLInsertStatement_ValuesClause_ptr x) { return true; };
  virtual void endVisit(SQLInsertStatement_ValuesClause_ptr x){};

  // virtual bool visit(ValuesClause_ptr x) { return true; }
  // virtual void endVisit(ValuesClause_ptr x) {}

  virtual bool visit(SQLUpdateSetItem_ptr x) { return true; }
  virtual void endVisit(SQLUpdateSetItem_ptr x) {}

  virtual bool visit(SQLUpdateStatement_ptr x) { return true; }
  virtual void endVisit(SQLUpdateStatement_ptr x) {}

  virtual bool visit(SQLCreateViewStatement_ptr x) { return true; }
  virtual void endVisit(SQLCreateViewStatement_ptr x) {}

  // virtual bool visit(NotNullConstraint_ptr x) { return true; }
  // virtual void endVisit(NotNullConstraint_ptr x) {}

  virtual void endVisit(SQLMethodInvokeExpr_ptr x) {}
  virtual bool visit(SQLMethodInvokeExpr_ptr x) { return true; }

  virtual void endVisit(SQLUnionQuery_ptr x) {}
  virtual bool visit(SQLUnionQuery_ptr x) { return true; }

  virtual void endVisit(SQLSetStatement_ptr x) {}
  virtual bool visit(SQLSetStatement_ptr x) { return true; }

  virtual void endVisit(SQLAssignItem_ptr x) {}
  virtual bool visit(SQLAssignItem_ptr x) { return true; }

  virtual void endVisit(SQLCallStatement_ptr x) {}
  virtual bool visit(SQLCallStatement_ptr x) { return true; }

  virtual void endVisit(SQLJoinTableSource_ptr x) {}
  virtual bool visit(SQLJoinTableSource_ptr x) { return true; }

  virtual void endVisit(SQLSomeExpr_ptr x) {}
  virtual bool visit(SQLSomeExpr_ptr x) { return true; }

  virtual void endVisit(SQLAnyExpr_ptr x) {}
  virtual bool visit(SQLAnyExpr_ptr x) { return true; }

  virtual void endVisit(SQLAllExpr_ptr x) {}
  virtual bool visit(SQLAllExpr_ptr x) { return true; }

  virtual void endVisit(SQLInSubQueryExpr_ptr x) {}
  virtual bool visit(SQLInSubQueryExpr_ptr x) { return true; }

  virtual void endVisit(SQLListExpr_ptr x) {}
  virtual bool visit(SQLListExpr_ptr x) { return true; }

  virtual void endVisit(SQLSubqueryTableSource_ptr x) {}
  virtual bool visit(SQLSubqueryTableSource_ptr x) { return true; }

  virtual void endVisit(SQLTruncateStatement_ptr x) {}
  virtual bool visit(SQLTruncateStatement_ptr x) { return true; }

  virtual void endVisit(SQLDefaultExpr_ptr x) {}
  virtual bool visit(SQLDefaultExpr_ptr x) { return true; }

  // virtual void endVisit(SQLCommentStatement_ptr x) {}
  // virtual bool visit(SQLCommentStatement_ptr x) { return true; }

  virtual void endVisit(SQLAlterTableDisableLifecycle_ptr x) {}
  virtual bool visit(SQLAlterTableDisableLifecycle_ptr x) { return true; }

  virtual void endVisit(SQLAlterTableDiscardPartition_ptr x) {}
  virtual bool visit(SQLAlterTableDiscardPartition_ptr x) { return true; }

  virtual void endVisit(SQLUseStatement_ptr x) {}
  virtual bool visit(SQLUseStatement_ptr x) { return true; }

  virtual bool visit(SQLAlterTableAddColumn_ptr x) { return true; }
  virtual void endVisit(SQLAlterTableAddColumn_ptr x) {}

  virtual bool visit(SQLAlterTableDropClusteringKey_ptr x) { return true; }
  virtual void endVisit(SQLAlterTableDropClusteringKey_ptr x) {}

  virtual bool visit(SQLAlterTableDropColumnItem_ptr x) { return true; }
  virtual void endVisit(SQLAlterTableDropColumnItem_ptr x) {}

  virtual bool visit(SQLAlterTableDropForeignKey_ptr x) { return true; }
  virtual void endVisit(SQLAlterTableDropForeignKey_ptr x) {}

  virtual bool visit(SQLAlterTableDropIndex_ptr x) { return true; }
  virtual void endVisit(SQLAlterTableDropIndex_ptr x) {}

  virtual bool visit(SQLDropIndexStatement_ptr x) { return true; }
  virtual void endVisit(SQLDropIndexStatement_ptr x) {}

  virtual bool visit(SQLDropViewStatement_ptr x) { return true; }
  virtual void endVisit(SQLDropViewStatement_ptr x) {}

  virtual bool visit(SQLSavePointStatement_ptr x) { return true; }
  virtual void endVisit(SQLSavePointStatement_ptr x) {}

  // virtual bool visit(SQLRollbackStatement_ptr x) { return true; }
  // virtual void endVisit(SQLRollbackStatement_ptr x) {}

  virtual bool visit(SQLReleaseSavePointStatement_ptr x) { return true; }
  virtual void endVisit(SQLReleaseSavePointStatement_ptr x) {}

  virtual void endVisit(SQLCommentHint_ptr x) {}
  virtual bool visit(SQLCommentHint_ptr x) { return true; }

  virtual void endVisit(SQLCreateDatabaseStatement_ptr x) {}
  virtual bool visit(SQLCreateDatabaseStatement_ptr x) { return true; }

  virtual void endVisit(SQLColumnPrimaryKey_ptr x) {}
  virtual bool visit(SQLColumnPrimaryKey_ptr x) { return true; }

  virtual bool visit(SQLColumnUniqueKey_ptr x) { return true; }
  virtual void endVisit(SQLColumnUniqueKey_ptr x) {}

  virtual void endVisit(SQLWithSubqueryClause_ptr x) {}
  virtual bool visit(SQLWithSubqueryClause_ptr x) { return true; }

  virtual void endVisit(SQLWithSubqueryClause_Entry_ptr x) {}
  virtual bool visit(SQLWithSubqueryClause_Entry_ptr x) { return true; }

  virtual void endVisit(SQLAlterTableAddExtPartition_ptr x) {}
  virtual bool visit(SQLAlterTableAddExtPartition_ptr x) { return true; }

  virtual void endVisit(SQLAlterTableAlterColumn_ptr x) {}
  virtual bool visit(SQLAlterTableAlterColumn_ptr x) { return true; }

  virtual bool visit(SQLAlterTableAddPartition_ptr x) { return true; }
  virtual void endVisit(SQLAlterTableAddPartition_ptr x) {}

  virtual bool visit(SQLAlterTableAddSupplemental_ptr x) { return true; }
  virtual void endVisit(SQLAlterTableAddSupplemental_ptr x) {}

  virtual bool visit(SQLCheck_ptr x) { return true; }
  virtual void endVisit(SQLCheck_ptr x) {}

  // virtual bool visit(SQLAlterTableDropForeinKey_ptr x) { return true; }
  // virtual void endVisit(SQLAlterTableDropForeinKey_ptr x) {}

  virtual bool visit(SQLAlterTableDropPrimaryKey_ptr x) { return true; }
  virtual void endVisit(SQLAlterTableDropPrimaryKey_ptr x) {}

  virtual bool visit(SQLAlterTableDropPartition_ptr x) { return true; }
  virtual void endVisit(SQLAlterTableDropPartition_ptr x) {}

  virtual bool visit(SQLAlterTableDropKey_ptr x) { return true; }
  virtual void endVisit(SQLAlterTableDropKey_ptr x) {}

  virtual bool visit(SQLAlterTableDisableKeys_ptr x) { return true; }
  virtual void endVisit(SQLAlterTableDisableKeys_ptr x) {}

  // virtual bool visit(SQLAlterTableEnableKeys_ptr x) { return true; }
  // virtual void endVisit(SQLAlterTableEnableKeys_ptr x) {}

  virtual bool visit(SQLAlterTableAlterIndex_ptr x) { return true; }
  virtual void endVisit(SQLAlterTableAlterIndex_ptr x) {}

  virtual bool visit(SQLAlterTableAnalyzePartition_ptr x) { return true; }
  virtual void endVisit(SQLAlterTableAnalyzePartition_ptr x) {}

  virtual bool visit(SQLAlterTableArchive_ptr x) { return true; }
  virtual void endVisit(SQLAlterTableArchive_ptr x) {}

  virtual bool visit(SQLAlterTableArchivePartition_ptr x) { return true; }
  virtual void endVisit(SQLAlterTableArchivePartition_ptr x) {}

  virtual bool visit(SQLAlterTableBlockSize_ptr x) { return true; }
  virtual void endVisit(SQLAlterTableBlockSize_ptr x) {}

  virtual bool visit(SQLAlterTableChangeOwner_ptr x) { return true; }
  virtual void endVisit(SQLAlterTableChangeOwner_ptr x) {}

  virtual bool visit(SQLAlterTableCheckPartition_ptr x) { return true; }
  virtual void endVisit(SQLAlterTableCheckPartition_ptr x) {}

  virtual bool visit(SQLAlterTableCoalescePartition_ptr x) { return true; }
  virtual void endVisit(SQLAlterTableCoalescePartition_ptr x) {}

  virtual bool visit(SQLAlterTableCompression_ptr x) { return true; }
  virtual void endVisit(SQLAlterTableCompression_ptr x) {}

  virtual bool visit(SQLAlterTableConvertCharSet_ptr x) { return true; }
  virtual void endVisit(SQLAlterTableConvertCharSet_ptr x) {}

  virtual bool visit(SQLAlterTableStatement_ptr x) { return true; }
  virtual void endVisit(SQLAlterTableStatement_ptr x) {}

  virtual bool visit(SQLAlterTableDeleteByCondition_ptr x) { return true; }
  virtual void endVisit(SQLAlterTableDeleteByCondition_ptr x) {}

  virtual bool visit(SQLAlterTableDisableConstraint_ptr x) { return true; }
  virtual void endVisit(SQLAlterTableDisableConstraint_ptr x) {}

  virtual bool visit(SQLAlterTableEnableConstraint_ptr x) { return true; }
  virtual void endVisit(SQLAlterTableEnableConstraint_ptr x) {}

  virtual bool visit(SQLColumnCheck_ptr x) { return true; }
  virtual void endVisit(SQLColumnCheck_ptr x) {}

  virtual bool visit(SQLExprHint_ptr x) { return true; }
  virtual void endVisit(SQLExprHint_ptr x) {}

  virtual bool visit(SQLAlterTableDropConstraint_ptr x) { return true; }
  virtual void endVisit(SQLAlterTableDropConstraint_ptr x) {}

  virtual bool visit(SQLUnique_ptr x) { return true; }
  virtual void endVisit(SQLUnique_ptr x) {}

  virtual bool visit(SQLPrimaryKeyImpl_ptr x) { return true; }
  virtual void endVisit(SQLPrimaryKeyImpl_ptr x) {}

  virtual bool visit(SQLCreateIndexStatement_ptr x) { return true; }
  virtual void endVisit(SQLCreateIndexStatement_ptr x) {}

  virtual bool visit(SQLAlterTableRenameColumn_ptr x) { return true; }
  virtual void endVisit(SQLAlterTableRenameColumn_ptr x) {}

  virtual bool visit(SQLColumnReference_ptr x) { return true; }
  virtual void endVisit(SQLColumnReference_ptr x) {}

  virtual bool visit(SQLDropSequenceStatement_ptr x) { return true; }
  virtual void endVisit(SQLDropSequenceStatement_ptr x) {}

  virtual bool visit(SQLDropTriggerStatement_ptr x) { return true; }
  virtual void endVisit(SQLDropTriggerStatement_ptr x) {}

  virtual void endVisit(SQLDropUserStatement_ptr x) {}
  virtual bool visit(SQLDropUserStatement_ptr x) { return true; }

  virtual void endVisit(SQLExplainStatement_ptr x) {}
  virtual bool visit(SQLExplainStatement_ptr x) { return true; }

  virtual void endVisit(SQLGrantStatement_ptr x) {}
  virtual bool visit(SQLGrantStatement_ptr x) { return true; }

  virtual void endVisit(SQLDropDatabaseStatement_ptr x) {}
  virtual bool visit(SQLDropDatabaseStatement_ptr x) { return true; }

  virtual void endVisit(SQLAlterProcedureStatement_ptr x) {}
  virtual bool visit(SQLAlterProcedureStatement_ptr x) { return true; }

  virtual void endVisit(SQLAlterSequenceStatement_ptr x) {}
  virtual bool visit(SQLAlterSequenceStatement_ptr x) { return true; }

  virtual void endVisit(SQLAlterSystemSetConfigStatement_ptr x) {}
  virtual bool visit(SQLAlterSystemSetConfigStatement_ptr x) { return true; }

  virtual void endVisit(SQLAlterSystemGetConfigStatement_ptr x) {}
  virtual bool visit(SQLAlterSystemGetConfigStatement_ptr x) { return true; }

  virtual void endVisit(SQLAlterTableAddIndex_ptr x) {}
  virtual bool visit(SQLAlterTableAddIndex_ptr x) { return true; }

  virtual void endVisit(SQLAlterTableAddClusteringKey_ptr x) {}
  virtual bool visit(SQLAlterTableAddClusteringKey_ptr x) { return true; }

  virtual void endVisit(SQLAlterTableAddConstraint_ptr x) {}
  virtual bool visit(SQLAlterTableAddConstraint_ptr x) { return true; }

  virtual void endVisit(SQLCreateTriggerStatement_ptr x) {}
  virtual bool visit(SQLCreateTriggerStatement_ptr x) { return true; }

  virtual void endVisit(SQLDropFunctionStatement_ptr x) {}
  virtual bool visit(SQLDropFunctionStatement_ptr x) { return true; }

  virtual void endVisit(SQLDropTableSpaceStatement_ptr x) {}
  virtual bool visit(SQLDropTableSpaceStatement_ptr x) { return true; }

  virtual void endVisit(SQLDropProcedureStatement_ptr x) {}
  virtual bool visit(SQLDropProcedureStatement_ptr x) { return true; }

  virtual bool visit(SQLDeclareStatement_ptr x) { return true; }
  virtual void endVisit(SQLDeclareStatement_ptr x) {}

  virtual bool visit(SQLDeclareItem_ptr x) { return true; }
  virtual void endVisit(SQLDeclareItem_ptr x) {}

  virtual bool visit(SQLAlterTableMergePartition_ptr x) { return true; }
  virtual void endVisit(SQLAlterTableMergePartition_ptr x) {}
};
